1. Field of the Invention
The present invention relates to communication systems, and more particularly, to communications for computers.
2. Description of the Related Art
As computers have become ubiquitous, the usefulness of the computers has increased by interconnecting them with other computers. To take advantage of the existing analog telephone network, modems were developed to facilitate transmission of data via conventional telephone connections. Initially, modems were strictly passive devices connected to a port on a host computer and could modulate data sent from the host computer and demodulate data received over the telephone lines. As modem technology advanced, microcontroller units (MCUs) were added to modems, and many of the configuration and control functions previously performed by other systems were assumed by the MCU, such as initiating a call, dialing a number, recognizing busy tones, and the like.
The addition of the MCU, however, did not eliminate the need for the host computer to direct the modem operations. Modems typically cannot determine which telephone number to call, whether to answer an incoming call, which data transfer speed may be desired, and many other parameters; the host computer directs these functions via commands sent to the modem.
Conventional modems provide only two physical links to the host computer, one for transmitting and the other for receiving. Consequently, all information is transmitted over the same link, regardless of the type of data. For example, data information, which comprises the actual data to be transmitted, is transmitted over the same link as message information, which provides information about the transmitted data information, such as channel information and data block size. Similarly, command information, which comprises commands to the modem, is also transmitted over the same link as the data information and the message information, and is commonly interspersed with such message information and data information.
To process commands, the modem switches to a command mode. One approach to signaling the modem to switch to command mode is to send an escape sequence. In this approach, the MCU checks every character sent from the host computer for the presence of the escape sequence. If detected, the modem enters command mode, processing all signals as commands until receipt of a carriage return, signifying the end of the command information. The modem then returns to data transmission mode and resumes checking every character until another escape sequence is detected. This approach, however, is susceptible to false detections of an escape sequence because a block of text may include the characters corresponding to the escape sequence.
Another approach to discriminating command information from message information and data information is disclosed in U.S. Pat. No. 4,549,302, issued to Dale A. Heatherington, on Oct. 22, 1985. The Heatherington patent discloses an escape sequence which utilizes a string of predetermined characters (in this case “+++”) to signal the modem to enter command mode. The Heatherington approach also requires a one second pause before and after the “+++” escape sequence to create a generally acceptable method of detecting commands when used in conjunction with low data transmission rates. However, for high data rates, a two-second delay may result in significant delays.
Another approach used to determine when a modem should switch from transmission mode to command mode is the Timing Independent Escape Sequence (TIES) system. Under TIES, as shown in FIG. 1, the MCU analyzes the data stream as it passes through the modem until it detects the first character of an escape sequence (step 1). Upon detecting the first character, such as “+” for a “+++” escape sequence, the MCU waits (step 2) and checks the next character (step 3) to see if it is the second character of the escape sequence. If the second character is not a “+”, the MCU waits for the next character (step 0) and resumes checking the data stream. If the second character is a the MCU waits (step 4) and checks the third character (step 5). If the third character is a “+”, a portion of the escape sequence has been received, and the MCU starts a timer (step 6). The MCU then waits for either another character to be sent or for the timer to expire (step 7). If the timer expires first (step 8), an OK signal is sent (step 9) to acknowledge receipt of the escape sequence, and the MCU then waits for the next character (step 10). If another character is sent prior to time running out, the timer is disregarded, and the MCU checks whether the character is an “A” (step 11), the first character of any valid conventional “AT” command. If the character is not an “A”, the following data is not a command and is processed as message data. If a valid escape sequence was sent, the next character sent by the host computer should be an “A” (step 11), followed by a “T” (step 13). Thus, the MCU, checks every character for the escape sequence. With the high data rates utilized in modern modems, TIES may overwork the MCU and significantly degrade modem performance.
Additionally, with the advent of the internet and internet service providers, multiple modems are now commonly connected to a single host computer system. These modems are often connected to the host computer via multiple single-channel modem circuit boards. Multiple modems present significant space, power, and interconnection issues. For example, connecting three modems to a host computer may involve redundant interfaces and modem components. FIG. 2 depicts one common arrangement, in which the host computer 10 contains a central processing unit (CPU) 12 and a data storage device, such as a RAM 16. The CPU 12 and the RAM 16 are connected to multiple modem interfaces 14 via a central data bus 13. The central data bus 13 transmits data between the modem interfaces 14 and the CPU 12 and the RAM 16.
As the modems 18 for each channel transfer data to and from the remote users, the CPU 12 typically controls data rates, the amount of data which can be sent or received, timing, and similar parameters to control the flow of data to multiple users via the central data bus 13. As a result, data awaiting processing by the CPU 12 or transfer to a modem 18 are often temporarily stored in RAM 16. When the data are to be transferred to a particular modem 18, the CPU 12 directs the data from the RAM 16 to be routed to the corresponding interface 14. The modem then operates in conventional fashion, modulating, demodulating, and receiving commands from the host computer.
As multiple modem connections to host computers increase, power, space and other concerns have made the current multiple interface, multiple modem approach cumbersome. To address these issues, multiple channel modems offer reduced redundancy and power consumption, among other advantages. Generally, multiple channel modems comprise single modems having multiple channels. As a result, the data flow rate between the modem and the host computer typically increases markedly. Instead of a single interface clocked to the maximum transmission speed of the modem, for example the 28.8 or 56.6 Kbytes per second rates commonly used today, a multiple channel modem may provide significantly higher data rates, especially if each channel is operating at its highest throughput rate. Insertion of a one-second pause for an escape sequence in this configuration is not only inefficient, it interrupts the communications for each channel.